|
Робот для игры в
крестики-нолики. | Этот робот, на базе
конструктора LEGO-NXT, самостоятельно играет с человеком в
крестики-нолики.
Этот робот, самостоятельно играет с человеком в
классические (3 х 3) крестики-нолики. Игра нехитрая, как и сам
робот, собранный из конструктора LEGO-NXT. «Самостоятельно»
значит, что робот может определить, какой ход сделал человек,
принять решение и сделать ответный ход. При этом человек не
оказывает на робота прямого воздействия, т.е. не нажимает,
например, кнопки управления. Игровое поле собрано из
дополнительных деталей того же конструктора LEGO, в качестве
«крестиков» и «ноликов» используются подходящие по размеру
шашки двух цветов (для человека обязательно белые, для лучшего
распознавания их роботом). В конструкции задействованы все 3
мотора, входящие в набор. Два из них – для перемещения каретки
над игровым полем, а третий – для управления механизмом
выброса шашки с помощью натяжного тросика. На каретке
установлен активный световой датчик, для определения наличия
белой шашки в клетке игрового поля, и магазин на 5 шашек,
который «заряжается» перед началом игры. Кроме того,
используется концевой выключатель, для приведения механизма в
исходное состояние и звуковой датчик, для подачи роботу
голосовой команды типа «Ходи давай, чурка пластмассовая!». При
запуске программы, робот приводит сервомоторы в исходное
состояние, сбрасывает счетчики положения и предлагает человеку
сделать свой ход. Человек кладет свою шашку в одну из ячеек и
дает звуковую команду роботу. Пользуясь, заложенной в память,
информацией о координатах ячеек игрового поля, робот
позиционирует каретку со световым датчиком над каждой из
ячеек, отмеченных в памяти, как свободные на данный момент, в
поисках белой шашки, пока не определит, какой ход сделал
человек. Затем робот принимает решение об ответном ходе,
пользуясь выигрышной стратегией и внося некоторое разнообразие
в игру с помощью генератора случайных чисел. Теперь роботу
остается расположить каретку над выбранной ячейкой, сбросить в
нее свою шашку и убраться в исходное положение, чтобы открыть
игровое поле для следующего хода человека. В процессе игры
робот комментирует свои действия синтезированным голосом.
Звуковые файлы были созданы на ПК с помощью технологии
text-to-speech, дополнительно обработаны звуковым редактором и
преобразованы в формат rso, совместимый с NXT. Ход игры
отображается на графическом дисплее NXT. Программа робота –
игрока написана с помощью С++ компилятора для NXT – «Robot C».
Также создана отдельная программка для калибровки, когда,
пользуясь кнопками NXT, можно вручную позиционировать каретку
над определенной ячейкой, зафиксировать координаты, с
последующей записью их в файл. Этот файл считывается основной
программой при ее загрузке. Конечно, можно установить над
игровым полем WEB-камеру и поручить ПК функции определения
хода человека и наведение каретки для хода робота. Но я ставил
перед собой задачу использовать только элементы NXT-
конструктора с минимумом дополнительных деталей. Дополнительно
в роботе использованы только тросик и возвратная резинка,
которые, как говорится, есть в каждом доме. Если не считать
игрового поля, которое можно изготовить из чего угодно.
Основная сложность была с магазином, который должен
выбрасывать строго по одной шашке и при этом быть подвижным и
не слишком громоздким. В заключение позволю себе немного
покритиковать инженеров LEGO, создавших, в целом
замечательный, робо-конструктор NXT. Мощные сервомоторы со
встроенными редуктором и датчиком положения, конечно вещь
хорошая. Но они слишком большие и тяжелые, для размещения,
например, на манипуляторе. Лучше бы один из них был
малогабаритный и легкий. Тем более, что шестеренок в
конструкторе хватает. Хочется заглянуть в глаза тому, кто
решил использовать в наборе такие дубовые, негнущиеся
соединительные кабели, да еще черного цвета, да еще с
разъемами спец изготовления. Ну и детали могли бы быть
поразнообразнее.
|
|
artur |
mbysjf@gmail.com |
if you can send to me picturs
of your robot artur |
|
|
|